package com.swt.agy.backend.utils;

import java.math.BigDecimal;
import java.text.NumberFormat;
import java.util.ArrayList;
import java.util.List;

/**
 * 请填写说明
 *
 * @author sx
 * @date 2019/5/7 19:30
 */
public class Utils {

    /**
     * 两个整型计算百分比，保留小数点0位
     *
     * @param a int
     * @param b int
     * @return int
     * @author sx
     * @date 2019/5/7 19:32
     */
    public static int percent0Decimal(int a, int b) {
        return (int) ((new BigDecimal((float) a / b).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue()) * 100);
    }

    public static double percent1Decimal(int a, int b) {
        // 创建一个数值格式化对象
        NumberFormat numberFormat = NumberFormat.getInstance();
        // 设置精确到小数点后2位
        numberFormat.setMaximumFractionDigits(2);
        String result = numberFormat.format((float) a / (float) b );
        return Double.valueOf(result);
    }

    public static double percent2Decimal(int a, int b) {
        // 创建一个数值格式化对象
        NumberFormat numberFormat = NumberFormat.getInstance();
        // 设置精确到小数点后2位
        numberFormat.setMaximumFractionDigits(2);
        String result = numberFormat.format((float) a / (float) b * 100);
        return Double.valueOf(result);
    }



    /**
     * 经度校验
     * 经度longitude: (?:[0-9]|[1-9][0-9]|1[0-7][0-9]|180)\\.([0-9]{6})
     * @return
     */
    public static boolean checkLon(String longitude){
        Double lon = Math.abs(Double.valueOf(longitude));
        longitude = lon.toString();
        String reglo = "(((?:[0-9]|[1-9][0-9]|1[0-7][0-9]))|((?:[0-9]|[1-9][0-9]|1[0-7][0-9])\\.([0-9]{0,12}))|((?:180)\\.([0]{0,12})))";
        longitude = longitude.trim();
        return longitude.matches(reglo);
    }

    /**
     * 纬度校验
     * 纬度latitude：  (?:[0-9]|[1-8][0-9]|90)\\.([0-9]{6})
     * @return
     */
    public static boolean checkLat(String latitude){
        Double lat = Math.abs(Double.valueOf(latitude));
        latitude = lat.toString();
        String regla = "(((?:[0-9]|[1-8][0-9]))|((?:[0-9]|[1-8][0-9])\\.([0-9]{0,12}))|((?:90)\\.([0]{0,12})))";
        latitude = latitude.trim();
        return latitude.matches(regla);
    }

    /**
     * 截取小数点后两位
     * @param value
     * @return
     */
    public static double subDouble(String value) {
        int end = value.length();
        if (value.indexOf(".") > 0 && (value.indexOf(".") + 3 < value.length())) {
            end = value.indexOf(".") + 3;
        }
        String resultStr = value.substring(0, end);
        return Double.parseDouble(resultStr);
    }

    /**
     * 一位小数 百分比
     * @param a
     * @param b
     * @return
     */
    public static String percentString(int a, int b) {
        NumberFormat nt = NumberFormat.getPercentInstance();
        nt.setMinimumFractionDigits(1);
        if (a == 0 && b == 0) {
            return nt.format(0);
        } else {
            return nt.format((float) a / (float) b);
        }
    }

    public static void main(String[] args) {
        List<Integer> list= new ArrayList<>();
        list.add(1);
        list.add(2);
        Integer[] integers = list.toArray(new Integer[8]);
        System.out.println(integers.equals(1));
    }
}
